package br.ita.doacoes.core.cadastrodoacoes.dao.impl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;

import br.ita.doacoes.core.cadastrodoacoes.dao.ContraparteDAO;
import br.ita.doacoes.domain.cadastrodoacoes.Contraparte;
import br.ita.doacoes.domain.cadastrodoacoes.Pessoa;

public class ContraparteDAOImpl extends DAOImpl<Contraparte> implements
		ContraparteDAO {

	public ContraparteDAOImpl(Class<Contraparte> x) {
		super(x);
	}

	public ContraparteDAOImpl() {
		this(Contraparte.class);
	}

	public Contraparte getByPessoa(Pessoa pessoa) {
		EntityManager em = emf.createEntityManager();
		EntityTransaction t = em.getTransaction();
		t.begin();
		Query q = em
				.createQuery("select x from Contraparte x where x.pessoa = ?1");
		q.setParameter(1, pessoa);
		List<Contraparte> result = (List<Contraparte>) q.getResultList();
		t.commit();
		em.close();
		if (result.size() != 0)
			return result.get(0);
		return null;
	}
}
